package _07外卖店优先级;
/*第七题：外卖店优先级
题目描述

“饱了么”外卖系统中维护着 N 家外卖店，编号 1 ∼ N。每家外卖店都有 一个优先级，初始时 (0 时刻) 优先级都为 0。

每经过 1 个时间单位，如果外卖店没有订单，则优先级会减少 1，最低减 到 0；而如果外卖店有订单，则优先级不减反加，每有一单优先级加 2。

如果某家外卖店某时刻优先级大于 5，则会被系统加入优先缓存中；如果 优先级小于等于 3，则会被清除出优先缓存。

给定 T 时刻以内的 M 条订单信息，请你计算 T 时刻时有多少外卖店在优 先缓存中。

【输入格式】

 第一行包含 3 个整数 N、M 和 T。
 
以下 M 行每行包含两个整数 ts 和 id，表示 ts 时刻编号 id 的外卖店收到 一个订单。

【输出格式】

输出一个整数代表答案。

【样例输入】 

2 6 6 
1 1 
5 2 
3 1 
6 2 
2 1 
6 2

【样例输出】 

1

【样例解释】 

6 时刻时，1 号店优先级降到 3，被移除出优先缓存；2 号店优先级升到 6， 加入优先缓存。所以是有 1 家店 (2 号) 在优先缓存中。

【评测用例规模与约定】
 
对于 80% 的评测用例，1≤ N,M,T ≤10000。 
对于所有评测用例，1≤ N,M,T ≤100000，1≤ts≤T，1≤id ≤ N。

时间限制：1.0s

内存限制：512.0MB
*/

import java.util.HashMap;
import java.util.Scanner;

public class _08外卖店优先级 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int order=sc.nextInt();
        int time=sc.nextInt();
        int a[][]=new int[n+1][time+1];
        int sum[]=new int[n+1];
        HashMap<Integer,Integer> map=new HashMap<>();

        for (int i = 0; i < order; i++) {
            int ts=sc.nextInt();
            int id=sc.nextInt();

            if(ts<=time)
                a[id][ts]++;

        }

        for (int i = 1; i < n+1; i++) {
            for (int j = 1; j <time+1 ; j++) {
                if(a[i][j]==0)
                    sum[i]=Math.max(0,sum[i]-1);
                else
                    sum[i] +=a[i][j]*2;
                if(sum[i]>5)
                    map.put(i,1);
                if(sum[i]<=3&&map.containsKey(i))
                    map.remove(i);

            }

        }
        System.out.println(map.size());
    }
}
